/*
Copyright 2011, 2012 Alessandro Magnolo.

This file is part of Backlight Indicator.

Backlight Indicator is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Backlight Indicator is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Backlight Indicator.  If not, see <http://www.gnu.org/licenses/>.
*/
package com.magnolo.backlight_indicator;

import java.io.DataOutputStream;
import java.io.IOException;

import android.util.Log;

public class Root {
	private static final String LOG_TAG="Root";

	/**
	 * Executes a command as root.
	 * @param cmd to execute
	 * @return true if execution was successful, false otherwise
	 * @deprecated consider using a library instead, e.g. http://code.google.com/p/roottools/
	 */
	static boolean execute(String cmd) {
		Process p;
		try {
			// Perform su to get root privileges  
			//p=Runtime.getRuntime().exec("/system/xbin/su");
			p=Runtime.getRuntime().exec("su");
//			p=Runtime.getRuntime().exec("sh");

			// Attempt to execute command
			DataOutputStream os=new DataOutputStream(p.getOutputStream());
			os.writeBytes(cmd+"\n");

			// Close the terminal  
			os.writeBytes("exit\n");
			os.flush();
			try {
				p.waitFor();
				if (p.exitValue()!=255) {
					// Code to run on success  
					return true;
				} else {
					// Code to run on unsuccessful  
					return false;
				}
			} catch (InterruptedException e) {
				// Code to run in interrupted exception  
				Log.w(LOG_TAG, "not root "+e);
			}
		} catch (IOException e) {
			// Code to run in input/output exception  
			Log.w(LOG_TAG, "not root "+e);
		}
		return false;
	}

}
